package com.zy.model;

import com.baomidou.mybatisplus.annotation.*;

import java.io.Serializable;
import java.util.Date;
import lombok.Data;

@Data
@TableName(value = "dev.t_user")
public class User implements Serializable {
    /**
     * 主键ID
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 用户ID
     */
    @TableField(value = "user_id")
    private String userId;

    /**
     * 用户名
     */
    @TableField(value = "user_name")
    private String userName;

    /**
     * 密码
     */
    @TableField(value = "`password`")
    private String password;

    /**
     * 应用ID
     */
    @TableField(value = "app_id")
    private String appId;

    /**
     * 第三方应用ID
     */
    @TableField(value = "open_id")
    private String openId;

    /**
     * 手机号
     */
    @TableField(value = "mobile")
    private String mobile;

    /**
     * 邮箱
     */
    @TableField(value = "email")
    private String email;

    /**
     * 头像
     */
    @TableField(value = "avatar")
    private String avatar;

    /**
     * 性别 0 未知 1 男 2 女
     */
    @TableField(value = "sex")
    private Integer sex;

    /**
     * 个性签名
     */
    @TableField(value = "self_signature")
    private String selfSignature;

    /**
     * 加好友验证类型
     */
    @TableField(value = "friend_allow_type")
    private Integer friendAllowType;

    /**
     * 禁用标识 1 禁用
     */
    @TableField(value = "forbidden_flag")
    private Integer forbiddenFlag;

    /**
     * 管理员禁止添加用户为好友
     */
    @TableField(value = "disable_add_friend")
    private Integer disableAddFriend;

    /**
     * 禁言标识 1 禁言
     */
    @TableField(value = "silent_flag")
    private Integer silentFlag;

    /**
     * 用户类型 1 普通用户 2 客服 3 机器人
     */
    @TableField(value = "user_type")
    private Integer userType;

    /**
     * 扩展字段
     */
    @TableField(value = "extra")
    private String extra;

    /**
     * 创建时间
     */
    @TableField(value = "create_time", fill = FieldFill.INSERT)
    private Date createTime;

    /**
     * 更新时间
     */
    @TableField(value = "updated_time", fill = FieldFill.INSERT_UPDATE)
    private Date updatedTime;

    @TableField(value = "ip_info")
    private String ipInfo;

    private static final long serialVersionUID = 1L;
}